package com.mass.waybill.scheduleTypes.dao;

import com.mass.waybill.order.model.WbShippingOrder;
import com.mass.waybill.scheduleTypes.model.WbScheduleTypes;
import com.mass.waybill.scheduleTypes.model.WbScheduleTypesExample;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author: ZSX
 * @Description: 费用明细  DAO
 */
@Mapper
public interface WbScheduleTypesMapper {

    /**
     * 费用统计
     *
     * @param wbShippingOrder
     * @param page
     * @param limit
     * @return
     */
    List<WbShippingOrder> costStatistics(@Param("wbShippingOrder") WbShippingOrder wbShippingOrder, @Param("page") Integer page, @Param("limit") Integer limit);

    /**
     * 查询行数
     *
     * @param wbShippingOrder
     * @return
     */
    Long costStatisticsCount(@Param("wbShippingOrder") WbShippingOrder wbShippingOrder);

    /**
     * 分页查询增补信息
     *
     * @param wbShippingOrder 查询条件
     * @param page            页
     * @param limit           行
     * @return
     */
    List<WbShippingOrder> findSupplement(@Param("wbShippingOrder") WbShippingOrder wbShippingOrder, @Param("page") Integer page, @Param("limit") Integer limit);

    /**
     * 查询行数
     *
     * @param wbShippingOrder
     * @return
     */
    Long findSupplementCount(@Param("wbShippingOrder") WbShippingOrder wbShippingOrder);

    int deleteSupplementByBatchNumber(@Param("batchNumber") String batchNumber);

    /**
     * 批量添加
     *
     * @param list
     * @return
     */
    int insertBatch(List<WbScheduleTypes> list);

    /**
     * @mbg.generated
     */
    long countByExample(WbScheduleTypesExample example);

    /**
     * @mbg.generated
     */
    int deleteByExample(WbScheduleTypesExample example);

    /**
     * @mbg.generated
     */
    int insert(WbScheduleTypes record);

    /**
     * @mbg.generated
     */
    int insertSelective(WbScheduleTypes record);

    /**
     * @mbg.generated
     */
    List<WbScheduleTypes> selectByExample(WbScheduleTypesExample example);

    /**
     * @mbg.generated
     */
    int updateByExampleSelective(@Param("record") WbScheduleTypes record, @Param("example") WbScheduleTypesExample example);

    /**
     * @mbg.generated
     */
    int updateByExample(@Param("record") WbScheduleTypes record, @Param("example") WbScheduleTypesExample example);
}